package com.ruoyi.iot.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 设备变量Vo
 * 
 * @author qiancheng
 * @date 2025-08-19
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class EquipVariablesVO
{

    /** 点位id */
    private Long coldId;

    /** 工厂id */
    @Excel(name = "工厂id")
    private Long companyId;

    /** 工厂名称 */
    @Excel(name = "工厂名称")
    private String companyName;

    /** 关联的设备类型ID，外键指向equipment_types表 */
    @Excel(name = "关联的设备类型ID")
    private Long secondaryEquipmentTypeId;

    /** 次级设备类型 */
    @Excel(name = "次级设备类型")
    private String secondaryEquipmentTypeName;

    /** 变量名称 */
    @Excel(name = "变量名称")
    private String variableName;

    /** 变量英文名称 */
    @Excel(name = "变量英文名称")
    private String variableEnName;

    /** 变量所属区域 */
    @Excel(name = "变量所属区域")
    private String area;

    /** 变量来源 */
    @Excel(name = "变量来源")
    private String valueSource;

    /** 变量当前值 */
    @Excel(name = "变量当前值")
    private String variableValue;

    /** 变量描述 */
    @Excel(name = "变量描述")
    private String description;

    /** 变量允许的最小值 */
    @Excel(name = "变量允许的最小值")
    private BigDecimal minValue;

    /** 变量允许的最大值 */
    @Excel(name = "变量允许的最大值")
    private BigDecimal maxValue;

    /** 变量最后更新时间戳 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "变量最后更新时间戳", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updateTimestamp;

    /** 变量值的精度 */
    @Excel(name = "变量值的精度")
    private BigDecimal accuracy;

    /** 变量值的单位 */
    @Excel(name = "变量值的单位")
    private String unit;

    /** 变量值的单位 */
    @Excel(name = "PLCIP")
    private String plcIp;

    /** 变量值的单位 */
    @Excel(name = "PLC地址",width = 30)
    private String plcSrc;

    public EquipVariablesVO(String variableEnName) {
        this.variableEnName = variableEnName;
    }
}
